package cn.DesignModel.observer02;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: lizemin
 * @version: 1.0
 * 具体被观察者（ConcreteSubject）
 * 里面定义了，是将观察者添加到集合中的方法。
 */
public class SubscriptionSubject implements Subject{

    //储存订阅公众号的微信用户的一个集合
    private List<Observer> userList = new ArrayList<Observer>();

    @Override
    public void attach(Observer observer) {
        //将具体的观察者装进集合，后面方便通过遍历的方式来进行相应工作
        userList.add(observer);
    }

    @Override
    public void detach(Observer observer) {
        userList.remove(observer);
    }

    @Override
    public void notify(String message) {
        for (Observer observer : userList) {
            observer.update(message);
        }
    }

}
